(function(_self, factory) {
	var nameSpace = 'customBtn_7809786768710978127';
	if (!window[nameSpace] && typeof factory === 'function') {
		var Builder = factory();
		window[nameSpace] = {
			initBtn : {}
		};
		/**
		 * 初始化方法
		 */
		window[nameSpace].init = function(el, options) {
			var identification = Math.floor(Math.round() * 10000000000)
					.toString();
			window[nameSpace].initBtn[identification] = new Builder(el,
					options, _self, identification);
		}
	}
})
(window,function() {
	/**
	 * 定义按钮的构造函数
	 * 
	 * @param {*}
	 *            options
	 * @param {*}
	 *            _self
	 */
	function labelPrintingBtn(el, options, _self,
			identification) {
		var self = this;
		self.window_self = _self;
		self.el = el;
		self.identification = identification;
		// 解析传进来的数据
		self.initParams(options);
		// 处理挂载
		self.initBtn(el);
		// 销毁自己
		self.beforeDestroy = function() {
			self = null;
		};
//		window.thirdPartyFormAPI.registerEvent('selectChange', function(params){
//			self.selectRows = params;
//		});
	}
	/**
	 * 构造函数的原型方法
	 */
	labelPrintingBtn.prototype = {
		initParams : function(options) {
			this.place = options.place;
			this.rowData = options.rowData;
			this.data = options.data;
		},
		initBtn : function(el) {
			// 挂载dom
			this.appendDom(el);
		},
		appendDom : function(el) {
			var self = this;
			var labelPrint, labelPrintToolbar, labelPrintIcon;
			// 根据不同位置渲染按钮
			switch (this.place) {
				case 'toolbar':
					labelPrint = document.createElement('button');
					// 对代码片段进行配置
					el.appendChild(labelPrint);
					labelPrint.parentNode.setAttribute('style', 'visibility: visible;');
					labelPrint.setAttribute('type', 'button');
					labelPrint.setAttribute('style', 'white-space: nowrap;font-size: 14px;line-height: 28px;padding: 0 14px;border-radius: 15px; height: 30px; background-color: #fff; border: 1px solid #d4d4d4; color: #666;cursor: pointer;');
					// 加入icon
					labelPrintIcon = document.createElement('i');
					labelPrintIcon.setAttribute('class', 'CAP CAP  cap-icon-shanchu');
					labelPrintIcon.setAttribute('style', 'color: rgb(255, 94, 94);');
					labelPrint.appendChild(labelPrintIcon);
					// 加入name信息
					labelPrintToolbar = document.createElement('span');
					labelPrintToolbar.innerHTML = this.data && this.data.name ? this.data.name : '';
					labelPrint.appendChild(labelPrintToolbar);
					break;
				case 'li':
					labelPrint = document.createElement('div');
					// 对代码片段进行配置
					el.appendChild(labelPrint);
					labelPrint.innerHTML = this.data
							&& this.data.name ? this.data.name : '';
					labelPrint.setAttribute('style','color: #333;background-color: rgba(0,0,0,0);cursor: pointer;white-space : nowrap;border: 0;overflow: hidden;text-overflow: ellipsis;');
					break;
				case 'row':
					labelPrint = document.createElement('div');
					// 对代码片段进行配置
					el.appendChild(labelPrint);
					labelPrint.innerHTML = this.data
							&& this.data.name ? this.data.name : '';
					labelPrint.setAttribute('style','color: #1f85ec;background-color: rgba(0,0,0,0);cursor: pointer;white-space : nowrap;border: 0;overflow: hidden;text-overflow: ellipsis;');
					break;
				default:
			}
			
			labelPrint.onclick = function() {
				switch (self.place) {
				case 'toolbar':
					// 点击执行对应的操作
					self.implementClick(self.rowData);
					break;
				case 'li':
				case 'row':
					// 点击执行对应的操作
					self.implementClick(self.rowData);
					break;
				default:
				}

			}
			// 阻止数据污染
			labelPrint.parentNode.onclick = function(e) {
				e.stopPropagation();
			}
		},
		// 执行点击事件
		implementClick : function(rowData) {
			var self = this;
			var datas;
			if (!rowData && window.extendApi
					&& window.extendApi.getChooseId) {
				datas = window.extendApi.getChooseId();
			} else {
				datas = rowData.id;
			}

			if(datas.length == 0){
				$.alert("请选择一条数据!");
			} else {
				var delProcessBar = getCtpTop().$.progressBar({text:"数据删除中,请等待......"});
				var formId = window.extendApi.getFormId()+"";
				$.ajax({
     				url:'/seeyon/seep.do?method=delBaseData',
     				async:false,
     				cache:false,
     				type:'post',
     				data:{
     					"formId": formId,
     					"records": datas.toString()
     				},
     				dataType:'text',
     				success:function(result){
     					if(delProcessBar){
     						delProcessBar.close();
     					}
     					if(result==""){
     						getCtpTop().$.alert("数据删除成功！");
     					}else{
     						getCtpTop().$.alert(result);
     					}
     					window.location.reload();
     				},
     				error:function(msg){
     					if(delProcessBar){
     						delProcessBar.close();
     					}
     					getCtpTop().$.alert('数据删除异常请联系管理员！');
     				}
     		   });
			}
		},
		// 点击逻辑执行
		handlerLogic : function(rowData) {
			$.alert(JSON.stringify(rowData));
		}
	};
	/**
	 * 返回值
	 */
	return labelPrintingBtn;
});
